/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ec.edu.espe.ccsoft.mantenimiento.bean.converters;

import ec.edu.espe.ccsoft.mantenimiento.dao.UnidadMedidaFacade;
import ec.edu.espe.ccsoft.mantenimiento.modelos.UnidadMedida;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

/**
 *
 * @author Gerardo
 */
@FacesConverter(value = "unidadMedidaConverter", forClass = ec.edu.espe.ccsoft.mantenimiento.modelos.UnidadMedida.class)
public class UnidadMedidaConverter implements Converter{
    
    @EJB
    private UnidadMedidaFacade unidadMedidaFacade;

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String submittedValue) {
        int unidadMedidaId;

        try {
            unidadMedidaId = Integer.parseInt(submittedValue);
        } catch (NumberFormatException exception) {
            throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Type the name of a Course and select it (or use the dropdown)",
                    "Type the name of a Course and select it (or use the dropdown)"));
        }

        return unidadMedidaFacade.find(unidadMedidaId);
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object modelValue) {
        UnidadMedida unidadMedida = null;
        if (modelValue instanceof UnidadMedida) {
            unidadMedida = (UnidadMedida) modelValue;
            StringBuilder asString = new StringBuilder();
            asString.append(unidadMedida.getCodUnidadMedida());
            return asString.toString();
        }
        return "";
    }

}
